iT邦幫忙

2022 iThome 鐵人賽

DAY 3
0

今日主題

在開始之前,請別忘了將今天的挑戰Day 2: Collections and environments先行fork到自己的工作區喔。

痛點

在前一天我們嘗試透過Postman來發出Request,介面簡單、操作容易,但當嘗試修改不同的參數時,都要手動去修改然後重新送出,一時半會還能夠接受,但隨著想測試的API數量變多,有時甚至會忘記剛剛到底試過哪些組合; 或是改動的參數非常多,改壞後不知道如何恢復之前能正常發送的情況,幸好Postman有提供 History 的功能,在工具左方的最下方能夠找到它。

https://ithelp.ithome.com.tw/upload/images/20220918/20140317VTh9lEYP6y.png

透過歷史紀錄的輔助,可以看到過去發出了哪些請求,甚至可以指定任何請求來重新發送,也可以點擊請求後方的三個點menu,然後按Save Request來將請求保存下來,然後儲存到指定的Collection下,那麼問題來了,什麼是Collection?

從挑戰的標題上也可以看到兩個關鍵字Collections以及Enviroments:

  • Collection其實就是可以將很多Request預先保存起來方便管理的一個集合,以今天fork的Day 2: Collections and environments項目來說,就是一個Collection,下面可以放資料夾(Folder)或是請求(Request)

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317vXcnjNSimW.png

  • Environment就是一堆變數(variables)的集合,每個環境可以預先定義好多組變數,讓請求可以透過切換不同環境來使用不同變數集合,實務上就可以讓測試環境與正式環境用同樣的請求來進行測試,只要切換環境就好

開始挑戰

展開今天挑戰的Collection,打開下面資料夾Collections and enviroments,可以找到叫做echo的一個預先準備好的請求,打開文件查看今天需要完成的項目如下

  • Create a variable: 根據要求需要在今天URL部分的post前方用一個變數{{baseURL}}來取代,前後有雙括號包起來的字串就會被識別成變數,當滑鼠移上去能看到提示了Unresolved Variable,那是因為我們這邊指令了要使用變數來組合URL,但該變數還沒有被定義

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317Qlm15hxgW0.png

    這時候如果直接點提示裡面的Add new variable,並限定範圍在當前Collection的話,就能讓同一個Collection下的請求都能共用到這個變數,或是不限定範圍,開放到全域使用。

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317gzOUxNnWIh.png

    不過Add new variable並不是今天預期要體驗的功能,根據文件我們應該透過Create an environment來達成

  • Create an environment: 首先到Environments按下+來新增一個新的Environment,可以自行取名,但最重要的是需要在這個環境下定義需要的變數baseURL以及其變數所代表的值

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317FBCoOuDvKK.png

    接著回到ehco這個請求,找到右上方的No Environment,因為目前沒有指定環境,所以可以點擊下拉,然後選擇剛剛所新增的環境

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317bPUQrJ2QXV.png

    這時滑鼠移到URL中變數位置就能看到

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317WbMbSEXfu0.png

    調整完不要忘了對echo進行ctrl + s來將修改存檔

  • Add a request: 這個步驟我們會多新增新的請求來模擬實務上可能遇到的狀況,首先將原本的echo重新命名為POST raw text,然後透過duplicate的方式來複製一個新請求並重新命名為GET with query params,因為是複製來的,所以新請求都是相同的內容,所以這邊也需要先修改Method為GET,然後給定任意兩個參數,存檔後會像下圖一樣,目前有了兩個請求會呼叫不同的API,可以試試看發出請求能不能取得表示成功的狀態碼200

    https://ithelp.ithome.com.tw/upload/images/20220918/20140317HfYvo01F0N.png

最後就是要透過submit來確認今天的挑戰是否有通過,展開今日collection下Submit your solution可以找到submit這個請求,可以看到有兩個變數是還沒有定義的,根據文件所述,我們需要提供這兩個變數才能成功上傳

https://ithelp.ithome.com.tw/upload/images/20220918/2014031779Tp6Kb3r9.png

Collection id是每個Collection都擁有且唯一的隨機字串,可以在info找到,把它複製下來等等會用到

https://ithelp.ithome.com.tw/upload/images/20220918/20140317UBdpTsCdJD.png

Postamn API Key是一個私有的API金鑰,由於submit這個請求使用到的https://api.getpostman.com/collections這個API屬於Postman API,原先是方便整合Postman所提供的功能,所以有著一些限制,像是呼叫次數的上限,也因此需要提供我們自己的Postamn API Key到Header裡的x-api-key。到這裡管理自己當前所有的金鑰,如果目前還沒有任何可用的金鑰的話,就可以點擊Generate API Key來建立新的一組,建立完成記得先複製起來

https://ithelp.ithome.com.tw/upload/images/20220918/20140317wHWG0oLOnP.png
要小心不要流出,否則任何人拿到這個鑰匙都能用你的身分去呼叫Postman API

有了Collection id以及Postman API Key之後,需要用前面的步驟將變數加入Environment,新增後會像下圖一般,這個環境用有三個變數。

https://ithelp.ithome.com.tw/upload/images/20220918/20140317wgcQjjp4KL.png

最後按下submitSend按鈕,如果看到測項都通過表示完成了今日挑戰

https://ithelp.ithome.com.tw/upload/images/20220918/20140317NTiSoR0XoR.png

今日回顧

  • History: Postman 提供了歷史紀錄,不怕修改的項目改壞無法復原
  • Adding requests: 體驗了透過duplicate的方式來新增請求,以及在collection裡管理多個請求的方式
  • Creating environments: 今天最核心的觀念,透過是先定義變數方便共享之外,實務上也常將測試、正式的站點以不同的環境來切分,例如同樣的一個變數baseURL,可以在測試環境下為https://test.com,而在正式站可以是https://production.com,只要透過環境的切換就能快速測不同站點下同一個API的功能。
  • Postman API: 官方提供的一系列方便整合的API,主要用以取得與帳號相關功能的資料,清單可以參考這裡

今天只是第三天就開始有種"我為啥不直接錄影片呢"的感覺...


上一篇
Postman Challenge Day 1 - 複製第一個API集合 (Fork a collection)
下一篇
Postman Challenge Day 3 - 新增請求的細部設定 (Add request details)
系列文
[POSTMAN] 該知道的都知道,不知道的慢慢了解 - 與波斯麵三十天的感情培養32
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言